﻿#ifndef LISTVIEW_H
#define LISTVIEW_H

#include <QDialog>
#include <QMessageBox>
#include <QGroupBox>
#include <QScrollArea>
#include "cmaskwidget.h"
#include <ctime>

namespace Ui {
class ListView;
}

class ListView : public QDialog
{
    Q_OBJECT

public:
    explicit ListView(QWidget *parent = nullptr);
    ~ListView();

    // 代码方式添加ICON
    void addIcon();

    // 设置透明度
    void setOpacity();


    // 加载一级选择器
    void loadL1();

    // 加载二级选择器
    void loadL2();

    // 加载三级选择器
    void loadL3();

    // 激活树选择框
    void activeTreeBox(int i);

protected:

    /**
     * 重写键盘事件，主要节点树之间的选择
     * @brief keyPressEvent
     * @param e
     */
    virtual void keyPressEvent(QKeyEvent * e);



private:


    /**
     * 设置指定控件透明度
     * @brief setOpacity
     * @param widget 要设置的控件
     * @param opactiy 透明度
     */
    void setOpacity(QWidget& widget,float opactiy);

    /**
     * 上下切换节点
     * @brief switchTreeListItem
     */
    void switchTreeListItem(bool isUp);


    /**
     * 展示技术点
     * @brief showSkillPointTree
     */
    void showSkillPointTree();




private:
    Ui::ListView *ui;

    // 当前选中的TreeBox
    int crtSelBox = 0;

    // 弹窗遮罩层
    CMaskWidget* maskWidget;

    // 弹窗对象
    QWidget* popupTree;

    QGroupBox* popupTreeContent;


};

#endif // LISTVIEW_H
